package com.mdd.admin.service;

import com.mdd.admin.validate.commons.PageValidate;
import com.mdd.admin.validate.order.OrderBatchValidate;
import com.mdd.admin.validate.order.OrderSearchValidate;
import com.mdd.common.core.PageResult;
import com.mdd.common.vo.OrderVo;
import org.apache.http.HttpResponse;

import javax.servlet.http.HttpServletResponse;

/**
 * 订单服务
 *
 * @author shenjian
 * @createTime 2023年02月26日 01:22:00
 */
public interface IOrderService {

    /**
     * 订单列表
     *
     * @param searchValidate
     * @return
     */
    PageResult<OrderVo> list(OrderSearchValidate searchValidate);

    /**
     * 订单详情
     *
     * @param orderId
     * @return
     */
    OrderVo getOrderDetail(Integer orderId);

    /**
     * 截止退款
     *
     * @param validate
     * @return
     */
    void notRefund(OrderBatchValidate validate);

    /**
     * 一键配送
     *
     * @return
     */
    void allDelivering();

    /**
     * 一键送达
     */
    void allDelivered();

    /**
     * 配送中
     *
     * @param validate
     * @return
     */
    void delivering(OrderBatchValidate validate);

    /**
     * 已送达
     *
     * @param validate
     * @return
     */
    void delivered(OrderBatchValidate validate);

    /**
     * 退款
     *
     * @param validate
     * @return
     */
    void refund(OrderBatchValidate validate);

    /**
     * 导出
     * @param date
     * @param response
     */
    void export(String date, HttpServletResponse response);

    /**
     * 回退未支付的优惠券
     */
    void fallbackCoupon();
}
